﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;

namespace ReclutamientoCosea
{
	/// <summary>
	/// Interaction logic for usrCandidato.xaml
	/// </summary>
	public partial class usrCandidato : UserControl
	{
        public event CerroVentana SeCerroVentana;
        private bool modo = false;
        public bool Modo
        {
            get { return modo; }
            set { modo = value; }
        }
        private Persona persna;
        public Persona Persna
        {
            get { return persna; }
            set { persna = value; }
        }
        private Candidato candto;
        public Candidato Candto
        {
            get { return candto; }
            set { candto = value; }
        }

		public usrCandidato()
		{
			this.InitializeComponent();
		}

        public void LimpiaCajas()
        {
            try
            {
                modo = true;
                persna = new Persona();
                candto = new Candidato();
                candto.idcandidato = string.Empty;
                candto.idpersona = string.Empty;

                txtPrimerNombre.Text = string.Empty;
                txtSegundoNombre.Text = string.Empty;
                txtPaterno.Text = string.Empty;
                txtMaterno.Text = string.Empty;
                txtCalle.Text = string.Empty;
                txtColonia.Text = string.Empty;
                txtMunicipio.Text = string.Empty;
                txtCP.Text = string.Empty;
                txtTelefono1.Text = string.Empty;
                txtTelefono2.Text = string.Empty;
                txtCelular1.Text = string.Empty;
                txtCelular2.Text = string.Empty;
                //dtFechaNacimiento.Value = DateTime.Now;
                txtCiudad.Text = string.Empty;
                txtPais.Text = string.Empty;
                txtComentarios.Document.Blocks.Clear();
                chkActivo.IsChecked = false;
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        public void MuestraDatos(Candidato candidato)
        {
            try
            {
                
                Personas personas = new Personas ();
                Persona persona = personas.GetPersona(candidato.idpersona);
                persna = persona;

                candto.idpersona = persona.idpersona;
                candto.idcandidato = candidato.idcandidato;                

                txtPrimerNombre.Text = persona.nombre1;
                txtSegundoNombre.Text = persona.nombre2;
                txtPaterno.Text = persona.apellido1;
                txtMaterno.Text = persona.apellido2;
                txtCalle.Text = persona.calle;
                txtColonia.Text = persona.colonia;
                txtMunicipio.Text = persona.municipio;
                txtCP.Text = persona.cp;
                txtTelefono1.Text = persona.telefono1;
                txtTelefono2.Text = persona.telefono2;
                txtCelular1.Text = persona.celular1;
                txtCelular2.Text = persona.celular2;
                dtFechaNacimiento.Value = persona.fechanacimiento;
                txtCiudad.Text = persona.ciudadnacimiento;
                txtPais.Text = persona.paisnacimiento;

                FlowDocument mcFlowDoc = new FlowDocument();
                Paragraph para = new Paragraph();
                para.Inlines.Add(new Run(persona.comentarios));
                mcFlowDoc.Blocks.Add(para);
                txtComentarios.Document = mcFlowDoc;

                txtEmail.Text = persona.email;

                if (candidato.activo == "1")
                    chkActivo.IsChecked = true;
                else
                    chkActivo.IsChecked = false;

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        public void RecuperaDatos()
        {
            try
            {
                persna.nombre1 = txtPrimerNombre.Text;
                persna.nombre2 = txtSegundoNombre.Text;
                persna.apellido1 = txtPaterno.Text;
                persna.apellido2 = txtMaterno.Text;
                persna.calle = txtCalle.Text;
                persna.colonia = txtColonia.Text;
                persna.municipio = txtMunicipio.Text;
                persna.cp = txtCP.Text;
                persna.telefono1 = txtTelefono1.Text;
                persna.telefono2 = txtTelefono2.Text;
                persna.celular1 = txtCelular1.Text;
                persna.celular2 = txtCelular2.Text;
                //persna.fechanacimiento = DateTime.Parse (dtFechaNacimiento.Value.ToString ());
                persna.fechanacimiento = (DateTime) dtFechaNacimiento.Value;
                persna.ciudadnacimiento = txtCiudad.Text;
                persna.paisnacimiento = txtPais.Text;
                persna.comentarios = Utilerias.ConvertRichTextBoxContentsToString(txtComentarios);
                persna.email = txtEmail.Text;
                if (chkActivo.IsChecked == true)
                    candto.activo = "1";
                else
                    candto.activo = "0";
            }
            catch (Exception ex)
            {                
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void btnCurri_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            wCapturaCurr wcurr = new wCapturaCurr();
            wcurr.oCurri.IdPersona = persna.idpersona;
            wcurr.oCurri.IdCandidato = candto.idcandidato;
            wcurr.oCurri.NombreCompleto = txtPrimerNombre.Text + " " + txtSegundoNombre.Text + " " + txtPaterno.Text + " " + txtMaterno.Text;
            wcurr.oCurri.SeCerroVentana += (objeto) =>
            {
                wcurr.Close();
            };
            wcurr.Show();
        }

        private void btnGuardar_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            try
            {
                RecuperaDatos();
                if (modo == true)
                {
                    DataSet ds = Candidatos.GuardaCandidato(Candto, Persna);
                    string idpersona = ds.Tables[1].Rows[0]["idpersona"].ToString();
                    string idcandidato = ds.Tables[1].Rows[0]["idcandidato"].ToString();
                    Personas per = new Personas();
                    Persna = per.GetPersona(idpersona);
                    Candto = Candidatos.GetCandidato(idcandidato);
                    per = null;
                    modo = false;
                }
                else
                {
                    Candidatos.ActualizaCandidato(candto, persna);
                }
                lblMensaje.Content = "Registro actualizado";                
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void btnNuevo_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            LimpiaCajas();
        }

        private void btnSalir_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            SeCerroVentana(true);
        }

        private void txtCP_TextChanged(object sender, TextChangedEventArgs e)
        {

        }
	}
}